package com.basic.modules.sys.service.impl;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.basic.common.utils.*;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.basic.modules.sys.dao.SysEmailConfigDao;
import com.basic.modules.sys.entity.SysEmailConfigEntity;
import com.basic.modules.sys.service.SysEmailConfigService;

import javax.mail.*;
import java.util.Properties;


@Service("sysEmailConfigService")
public class SysEmailConfigServiceImpl extends ServiceImpl<SysEmailConfigDao, SysEmailConfigEntity> implements SysEmailConfigService {

    @Override
    public PageUtils queryPage(ParamsModel<SysEmailConfigEntity> params) throws MessagingException {
        QueryWrapper<SysEmailConfigEntity> queryWrapper = ParamUtils.createQueryWrapperByDefaultSort(params);
//        queryWrapper.lambda().eq(SysEmailConfigEntity::getCreateUserId, CommonUtils.getUserId());
        IPage<SysEmailConfigEntity> page = this.page(
                new Query<SysEmailConfigEntity>().getPage(BeanUtil.beanToMap(params.getPage())),
                queryWrapper
        );
//        if (ObjectUtil.isNotEmpty(page) && ObjectUtil.isNotEmpty(page.getRecords())) {
//            for (SysEmailConfigEntity record : page.getRecords()) {
//                Properties props = new Properties();
//                props.setProperty("mail.store.protocol", "imap");
//                String host = "";
//                if (StrUtil.equals(record.getEmailType(), "1")) {
//                    host = "imap.qiye.aliyun.com";
//                } else if (StrUtil.equals(record.getEmailType(), "2")) {
//                    host = "imap.qq.com";
//                } else {
//                    continue;
//                }
//                props.setProperty("mail.imap.host", host);
//                props.setProperty("mail.imap.port", "993");
//                props.setProperty("mail.imap.ssl.enable", "true");
//
//                Session session = Session.getInstance(props);
//                Store store = session.getStore("imap");
//                store.connect(record.getEmailUrl(), record.getPassword());
//
//                Folder inbox = store.getFolder("INBOX");
//                inbox.open(Folder.READ_ONLY);
////                log.info("总邮件数：" + inbox.getMessageCount());
//                // 得到收件箱文件夹信息，获取邮件列表
//                record.setUnReadCount(inbox.getUnreadMessageCount());
//                inbox.close(false);
//                store.close();
//            }
//        }
        return new PageUtils(page);
    }

}
